﻿Public Class frmPregunta

    Public modeForm As Integer
    Public frmParent As frmMPregunta

    Private Sub frmPregunta_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Select Case Me.modeForm
            Case 1 'Nuevo
                frmParent.tsbNuevo.Enabled = True
            Case 2 'Consultar
                frmParent.tsbConsultar.Enabled = True
            Case 3 'Editar
                frmParent.tsbEditar.Enabled = True
        End Select
    End Sub

    Private Sub frmPregunta_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        Me.btnCancelar.Text = "Cancelar"
        Me.btnGuardar.Visible = True

        Dim dstRecord1 As New DataSet
        dstRecord1.Tables.Add("Categoria")
        mdlCRUD.loadRecord(dstRecord1, "Categoria", "categoria", "", "categoria_id")

        Me.clbCategorias.DataSource = dstRecord1.Tables("Categoria")
        Me.clbCategorias.DisplayMember = dstRecord1.Tables("Categoria").Columns(1).Caption.ToString
        Me.clbCategorias.ValueMember = dstRecord1.Tables("Categoria").Columns(0).Caption.ToString
        'mdlConexion.blnOnDB = True
        dstRecord1.Tables.Add("Pregunta")
        mdlCRUD.loadRecord(dstRecord1, "Pregunta", "Pregunta", "", "Pregunta_id")
        mdlConexion.blnOnDB = True
        Me.clbPreguntaOLP.DataSource = dstRecord1.Tables("Pregunta")
        Me.clbPreguntaOLP.DisplayMember = dstRecord1.Tables("Pregunta").Columns(1).Caption.ToString
        Me.clbPreguntaOLP.ValueMember = dstRecord1.Tables("Pregunta").Columns(0).Caption.ToString
        mdlConexion.blnOnDB = False
        'Me.clbCategorias.SelectedValue = 3
        'Me.clbCategorias.SetItemChecked(Me.clbCategorias.SelectedIndex, True)
        'Me.clbCategorias.SelectedValue = 5
        'Me.clbCategorias.SetItemChecked(Me.clbCategorias.SelectedIndex, True)
        'Me.clbCategorias.SelectedValue = 6
        'Me.clbCategorias.SetItemChecked(Me.clbCategorias.SelectedIndex, True)

        'Dim arrRow1 As Array
        'arrRow1 = dstRecord1.Tables("Categoria").Rows(0).ItemArray.ToArray


        'For intI As Integer = 0 To arrRow1.Length
        '    Me.clbCategorias.Items.Add(
        'Next
        'MsgBox(arrRow1.Length.ToString)

        Select Case Me.modeForm
            Case 1 'Nuevo
                Me.txtCodigo.Text = ""
                Me.txtNombre.Text = ""
                Me.txtDescripcion.Text = ""
                Me.txtGeneral.Text = ""
                Me.txtOptometria.Text = ""
                Me.txtPsicologia.Text = ""
                Me.txtFonoaudiologia.Text = ""

            Case 2 'Consultar
                Me.txtCodigo.Text = Me.frmParent.arrConsulta(0)
                Me.txtNombre.Text = Me.frmParent.arrConsulta(1)
                Select Case Me.frmParent.arrConsulta(2)
                    Case "1"
                        Me.rdbTipo1.Checked = True
                    Case "2"
                        Me.rdbTipo2.Checked = True
                    Case "3"
                        Me.rdbTipo3.Checked = True
                    Case "4"
                        Me.rdbTipo4.Checked = True
                    Case "5"
                        Me.rdbTipo5.Checked = True
                End Select
                Me.txtDescripcion.Text = Me.frmParent.arrConsulta(3)

                If Me.frmParent.arrConsulta(4) <> "" Then
                    Me.cmbPregunta.SelectedValue = Me.frmParent.arrConsulta(4)
                End If

                If Me.rdbtnIntegracion1.Checked <> "0" Then
                    Me.rdbtnIntegracion1.Checked = True
                Else
                    Me.rdbtnIntegracion1.Checked = False
                End If

                Me.txtGeneral.Text = Me.frmParent.arrConsulta(6)
                Me.txtOptometria.Text = Me.frmParent.arrConsulta(7)
                Me.txtPsicologia.Text = Me.frmParent.arrConsulta(8)
                Me.txtFonoaudiologia.Text = Me.frmParent.arrConsulta(9)

                Me.btnCancelar.Text = "Continuar"
                Me.btnGuardar.Visible = False

            Case 3 'Editar
                Dim dstRecord As New DataSet
                Dim strId As String = Me.frmParent.dgvPregunta.Rows(Me.frmParent.dgvPregunta.CurrentRow.Index).Cells(0).Value.ToString

                dstRecord.Tables.Add("pregunta")
                mdlCRUD.loadRecord(dstRecord, "pregunta", "pregunta", "pregunta_id = '" & strId & "'", Nothing)

                Dim arrRow As Array
                arrRow = dstRecord.Tables("pregunta").Rows(0).ItemArray.ToArray

                Me.lblEdCodigo.Text = arrRow(0).ToString
                Me.txtCodigo.Text = arrRow(0).ToString
                Me.txtNombre.Text = arrRow(1).ToString
                Me.txtDescripcion.Text = arrRow(2).ToString
                Select Case arrRow(3).ToString()
                    Case "1"
                        Me.rdbTipo1.Checked = True
                    Case "2"
                        Me.rdbTipo2.Checked = True
                    Case "3"
                        Me.rdbTipo3.Checked = True
                    Case "4"
                        Me.rdbTipo4.Checked = True
                    Case "5"
                        Me.rdbTipo4.Checked = True
                End Select
                If arrRow(4).ToString <> "" Then
                    Me.cmbPregunta.SelectedValue = arrRow(4).ToString
                End If

                If arrRow(5).ToString = "1" Then
                    Me.rdbtnIntegracion1.Checked = True
                Else
                    Me.rdbtnIntegracion2.Checked = True
                End If
                If (Not IsDBNull(arrRow(6))) Then
                    Me.txtGeneral.Text = arrRow(6)
                End If
                If (Not IsDBNull(arrRow(7))) Then
                    Me.txtOptometria.Text = arrRow(7)
                End If
                If (Not IsDBNull(arrRow(8))) Then
                    Me.txtPsicologia.Text = arrRow(8)
                End If
                If (Not IsDBNull(arrRow(9))) Then
                    Me.txtFonoaudiologia.Text = arrRow(9)
                End If
                'Ingreso de categorias x pregunta

                dstRecord.Tables.Add("preguntacategoria")
                mdlCRUD.loadRecord(dstRecord, "preguntacategoria", "preguntacategoria", "pregunta_id = '" & arrRow(0).ToString & "'", Nothing)
                For i = 0 To dstRecord.Tables("preguntacategoria").Rows.Count - 1
                    arrRow = dstRecord.Tables("preguntacategoria").Rows(i).ItemArray.ToArray

                    For j = 0 To Me.clbCategorias.Items.Count - 1
                        If (arrRow(1) = (Me.clbCategorias.GetItemText(j) + 1)) Then
                            Me.clbCategorias.SetItemChecked(j, True)
                        End If
                    Next
                Next i

                dstRecord.Tables.Add("preguntarespuesta")
                mdlCRUD.loadRecord(dstRecord, "preguntarespuesta", "preguntarespuesta", "pregunta_id = '" & arrRow(0).ToString & "'", Nothing)
                If (dstRecord.Tables("preguntarespuesta").Rows.Count > 0) Then
                    Me.dgvRespuesta.RowCount = dstRecord.Tables("preguntarespuesta").Rows.Count
                    For i = 0 To dstRecord.Tables("preguntarespuesta").Rows.Count - 1
                        arrRow = dstRecord.Tables("preguntarespuesta").Rows(i).ItemArray.ToArray
                        Me.dgvRespuesta.Rows(i).Cells(0).Value = arrRow(1).ToString
                        Me.dgvRespuesta.Rows(i).Cells(1).Value = arrRow(4).ToString
                        Me.dgvRespuesta.Rows(i).Cells(2).Value = arrRow(5).ToString
                        Me.dgvRespuesta.Rows(i).Cells(3).Value = arrRow(3).ToString
                        Me.dgvRespuesta.Rows(i).Cells(4).Value = arrRow(2).ToString
                    Next i
                End If
        End Select
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGuardar.Click
        Select Case Me.modeForm
            Case 1 'Nuevo

                'Ingreso de pregunta
                Dim Tipo As String

                If Me.rdbTipo1.Checked = True Then
                    Tipo = "1"
                End If
                If Me.rdbTipo2.Checked = True Then
                    Tipo = "2"
                End If
                If Me.rdbTipo3.Checked = True Then
                    Tipo = "3"
                End If
                If Me.rdbTipo4.Checked = True Then
                    Tipo = "4"
                End If
                If Me.rdbTipo5.Checked = True Then
                    Tipo = "5"
                End If
        Dim arrCampos() As String = {"pregunta_id", "pregunta_nombre", "pregunta_descri", "pregunta_tipo", "pregunta_padre", "pregunta_integracion", "pregunta_codgeneral", "pregunta_codoptometria", "pregunta_codpsicologia", "pregunta_codfonoaudiologia"}
                Dim arrValor() As String = {Trim(Me.txtCodigo.Text), Trim(Me.txtNombre.Text), Trim(Me.txtDescripcion.Text), Trim(Tipo), Trim(Me.cmbPregunta.SelectedValue.ToString), IIf(Me.rdbtnIntegracion1.Checked <> False, "1", "0"), Trim(Me.txtGeneral.Text), Trim(Me.txtOptometria.Text), Trim(Me.txtPsicologia.Text), Trim(Me.txtFonoaudiologia.Text)}

        mdlCRUD.insRecord("pregunta", arrCampos, arrValor)

        'Ingreso de respuestas x pregunta
        Dim strCondicion As String = "pregunta_id = " & IIf(Trim(Me.txtCodigo.Text) <> "", "'" & Me.txtCodigo.Text & "'", "null")

        mdlCRUD.delRecord("preguntarespuesta", strCondicion)

        For Each cRow As DataGridViewRow In Me.dgvRespuesta.Rows
            If cRow.Cells.Item("clmValorrespuesta").Value <> "" Then

                        Dim arrCamposRespuesta() As String = {"pregunta_id", "preguntarespuesta_nombre", "preguntarespuesta_mensaje", "preguntarespuesta_tipo", "preguntarespuesta_valor", "preguntarespuesta_rolp"}
                        Dim arrValorRespuesta() As String = {Trim(Me.txtCodigo.Text), Trim(cRow.Cells.Item("clmEtiquetarespuesta").Value.ToString), Trim(cRow.Cells.Item("clmMensajeRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmTipoRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmValorRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmValorOLP").Value.ToString)}

                mdlCRUD.insRecord("preguntarespuesta", arrCamposRespuesta, arrValorRespuesta)
            End If
        Next cRow

        'Ingreso de categorias x pregunta
        mdlCRUD.delRecord("preguntacategoria", strCondicion)
        For Each chkList In Me.clbCategorias.CheckedItems

            Dim arrCamposCategoria() As String = {"pregunta_id", "categoria_id"}
                    Dim arrValorCategoria() As String = {Trim(Me.txtCodigo.Text), Trim(chkList.Item("categoria_id").ToString)}

            mdlCRUD.insRecord("preguntacategoria", arrCamposCategoria, arrValorCategoria)
        Next

            Case 2 'Consultar

            Case 3 'Editar
                'Ingreso de pregunta
                Dim Tipo As String

                If Me.rdbTipo1.Checked = True Then
                    Tipo = "1"
                End If
                If Me.rdbTipo2.Checked = True Then
                    Tipo = "2"
                End If
                If Me.rdbTipo3.Checked = True Then
                    Tipo = "3"
                End If
                If Me.rdbTipo4.Checked = True Then
                    Tipo = "4"
                End If
                If Me.rdbTipo5.Checked = True Then
                    Tipo = "5"
                End If
        'Actualizacion de pregunta
                Dim arrParametro() As String = {"pregunta_id = " & IIf(Trim(Me.txtCodigo.Text) <> "", "'" & Me.txtCodigo.Text & "'", "null"),
                                                "pregunta_nombre = " & IIf(Trim(Me.txtNombre.Text) <> "", "'" & Me.txtNombre.Text & "'", "null"),
                                                "pregunta_descri = " & IIf(Trim(Me.txtDescripcion.Text) <> "", "'" & Me.txtDescripcion.Text & "'", "null"),
                                                "pregunta_tipo = " & IIf(Trim(Tipo) <> "", "'" & Tipo & "'", "null"),
                                                "pregunta_padre = " & IIf(Trim(Me.cmbPregunta.SelectedValue.ToString) <> "", "'" & Me.cmbPregunta.SelectedValue.ToString & "'", "null"),
                                                "pregunta_integracion = " & IIf(Me.rdbtnIntegracion1.Checked <> False, "1", "0"),
                                                "pregunta_codgeneral = " & IIf(Trim(Me.txtGeneral.Text) <> "", "'" & Me.txtGeneral.Text & "'", "null"),
                                                "pregunta_codoptometria = " & IIf(Trim(Me.txtOptometria.Text) <> "", "'" & Me.txtOptometria.Text & "'", "null"),
                                                "pregunta_codpsicologia = " & IIf(Trim(Me.txtPsicologia.Text) <> "", "'" & Me.txtPsicologia.Text & "'", "null"),
                                                "pregunta_codfonoaudiologia = " & IIf(Trim(Me.txtFonoaudiologia.Text) <> "", "'" & Me.txtFonoaudiologia.Text & "'", "null")}

        Dim strCondicion As String = "pregunta_id = " & IIf(Trim(Me.txtCodigo.Text) <> "", "'" & Me.txtCodigo.Text & "'", "null")

        mdlCRUD.updRecord("pregunta", arrParametro, strCondicion)

        'Ingreso de respuestas x pregunta
        mdlCRUD.delRecord("preguntarespuesta", strCondicion)

        For Each cRow As DataGridViewRow In Me.dgvRespuesta.Rows
            If cRow.Cells.Item("clmValorrespuesta").Value <> "" Then

                        Dim arrCamposRespuesta() As String = {"pregunta_id", "preguntarespuesta_nombre", "preguntarespuesta_mensaje", "preguntarespuesta_tipo", "preguntarespuesta_valor", "preguntarespuesta_rolp"}
                        Dim arrValorRespuesta() As String = {Trim(Me.txtCodigo.Text), Trim(cRow.Cells.Item("clmEtiquetarespuesta").Value.ToString), Trim(cRow.Cells.Item("clmMensajeRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmTipoRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmValorRespuesta").Value.ToString), Trim(cRow.Cells.Item("clmValorOLP").Value.ToString)}

                mdlCRUD.insRecord("preguntarespuesta", arrCamposRespuesta, arrValorRespuesta)
            End If
        Next cRow

        'Ingreso de categorias x pregunta
        mdlCRUD.delRecord("preguntacategoria", strCondicion)
        For Each chkList In Me.clbCategorias.CheckedItems

            Dim arrCamposCategoria() As String = {"pregunta_id", "categoria_id"}
            Dim arrValorCategoria() As String = {Trim(Me.txtCodigo.Text), Trim(chkList.Item("categoria_id").ToString)}

            mdlCRUD.insRecord("preguntacategoria", arrCamposCategoria, arrValorCategoria)
        Next

        End Select

        If (mdlCRUD.blnFlag = True) Then
            Me.frmParent.refreshList()
            Me.Close()
        End If


        'MsgBox(Me.rdbtnIntegracion1.Checked)
        'MsgBox(IIf(Me.rdbtnIntegracion1.Checked <> False, "'1'", "0"))

        'Dim intRows = Me.dgvRespuesta.RowCount.ToString - 1
        'Dim intcon As Integer
        'MsgBox(intRows)

        'For Each cRow As DataGridViewRow In Me.dgvRespuesta.Rows
        '    If cRow.Cells.Item("clmValorrespuesta").Value <> "" Then
        '        MsgBox(cRow.Cells.Item("clmValorrespuesta").Value.ToString & " - " & cRow.Cells.Item("clmEtiquetarespuesta").Value.ToString)
        '    End If

        'Next cRow

        ''For Each chkList In Me.clbCategorias.CheckedItems
        ''    MsgBox(Me.clbCategorias.CheckedItems(intI).ToString)
        ''    MsgBox(chkList.Item("categoria_id").ToString & " - " & chkList.Item("categoria_nombre").ToString)

        ''Next


    End Sub


    Private Sub btnCancelar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCancelar.Click
        Select Case Me.modeForm
            Case 1 'Nuevo

            Case 2 'Consultar
                Dim Tipo As String

                If Me.rdbTipo1.Checked = True Then
                    Tipo = "1"
                End If
                If Me.rdbTipo2.Checked = True Then
                    Tipo = "2"
                End If
                If Me.rdbTipo3.Checked = True Then
                    Tipo = "3"
                End If
                If Me.rdbTipo4.Checked = True Then
                    Tipo = "4"
                End If
                If Me.rdbTipo5.Checked = True Then
                    Tipo = "5"
                End If
                Me.frmParent.arrConsulta(0) = Trim(Me.txtCodigo.Text)
                Me.frmParent.arrConsulta(1) = Trim(Me.txtNombre.Text)
                Me.frmParent.arrConsulta(2) = Trim(Me.txtDescripcion.Text)
                Me.frmParent.arrConsulta(3) = Trim(Tipo)

                If Me.cmbPregunta.SelectedIndex <> -1 Then
                    Me.frmParent.arrConsulta(4) = Trim(Me.cmbPregunta.SelectedValue.ToString)
                End If

                If Me.rdbtnIntegracion1.Checked <> False Then
                    Me.frmParent.arrConsulta(5) = "1"
                Else
                    Me.frmParent.arrConsulta(5) = "0"
                End If

                Me.frmParent.arrConsulta(6) = Trim(Me.txtGeneral.Text)
                Me.frmParent.arrConsulta(7) = Trim(Me.txtOptometria.Text)
                Me.frmParent.arrConsulta(8) = Trim(Me.txtPsicologia.Text)
                Me.frmParent.arrConsulta(9) = Trim(Me.txtFonoaudiologia.Text)

                Me.frmParent.refreshList()

            Case 3 'Editar

        End Select


        Me.Close()
    End Sub
End Class